package Air_war;

import java.awt.image.BufferedImage;
//英雄机类
public class Hero extends FlyingObject{

    private int life;//生命
    private int fire;//火力

    public Hero (){
        super(97,139,140,400);
        life = 3;
        fire = 0;
    }
    //重写step 移动
    public void step(){

    }

    int index = 0;//下标
    //重写getImage（）获取图片
    public BufferedImage getImage() {
        return Images.heros[index++%Images.heros.length];//在heros[0]和heros[1]中来回切换

        /*执行过程
                                 idex = 0  idex++没10m自增一
            10m返回heros[0]       idex = 1
            20m返回heros[1]       idex = 2
            30m返回heros[0]       idex = 3
            40m返回heros[1]       idex = 4
            50m返回heros[0]       idex = 5
         */
    }
    //英雄机发射子弹
    public Bullet[] shoot(){
        int xStep = this.width/4;//1/4英雄机的宽
        int yStep = 20;
        if (fire>0){//双倍火力
            Bullet[] bs = new Bullet[2];//两发子弹
            bs[0] = new Bullet(this.x+1* xStep,this.y-yStep);//x：英雄机的x+1/4英雄机的宽 y：英雄机的y-固定的20
            bs[1] = new Bullet(this.x+3* xStep,this.y-yStep);//x：英雄机的x+3/4英雄机的宽 y：英雄机的y-固定的20
            fire-=2;//发射一发子弹减少2火力值
            return bs;
        }else{//单倍火力
            Bullet[] bs = new Bullet[1];
            bs[0] = new Bullet(this.x+2*xStep,this.y-yStep);//x：英雄机的x+2/4英雄机的宽 y：英雄机的y-固定的20
            return bs;
        }
    }
    //英雄机移动          x,y:代表鼠标的x，y坐标
    public void moveTo(int x,int y){
        this.x = x-this.width/2;//英雄机的x=鼠标的x-1/2的宽
        this.y = y-this.height/2;//英雄机的y=鼠标的y-1/2的宽
    }

    public void addFire(){
        fire+=40;//火力值+40
    }
    public void addLife(){
        life++;//生命数量+1
    }
    //获取英雄机生命数量
    public int getLife(){
        return life;//返回生命
    }
    //英雄机减少生命
    public void subtractLife(){
        life--;//命数减一
    }
    //英雄机清空火力
    public void clearFire(){
        fire = 0;//活力值清零
    }

}
